Amazon EC2リザーブドインスタンスマーケットプレイスでRIを出品して販売する
リザーブドインスタンス(RI)について
リザーブドインスタンスは、前金を支払うことでEC2インスタンスを「安く利用する権利」を得ることができる機能です。主にAWSから買うことができますが、実は、サードパーティから購入することもできます。「サードパーティ?」と思われる方も多いかと思いますが、これは「AWSアカウントを持った別ユーザ」を指しています。今回は、私自身がサードパーティとして、「購入済みのEC2インスタンスを販売」してみたいと思います。こういった機会はあまり無いと思いますのでお楽しみくださいw
サードパーティ
サードパーティのリザーブドインスタンスがどのように見えるのか確認してみましょう。
Sellerに見えていますね!また、Termを確認してみてください。通常、RIは12か月か36か月を指定して買いますが、サードパーティのRIは、それぞれ期間が異なります。また、単価も異なっています!サードパーティのRIは、「安く利用する権利」を得た「購入済みのEC2インスタンスを販売」することになりますので、残りの期間分を販売できることになります。例えば、12か月のRIを購入して3か月と10日経過した状態で販売するときは8か月分を販売することができます。
RI販売者として登録する
リザーブドインスタンスを販売するためには、一定の条件を満たしていなければなりません。詳しくは以下の「リザーブドインスタンスの要件チェックリスト」をご確認ください。
ポイントとなる部分は以下です。
- 住所が米国内の銀行
- RI購入後、30日が経過してから
- RIの残りの有効期間が1か月以上
- RI販売手数料として、12%掛かる
日本人の利用者にとって最もハードルが高いのは、住所が米国の銀行ですね。RIを販売した売上が振り込まれます。米国の銀行カードの作成方法についてここでは省きますが、日本の銀行は扱えないと憶えておいてください。また、販売手数料が12%掛かりますので、カジュアルに売買するというよりかは、利用しなくなったRIの損切り販売や、短期間のRIにプレミアム価格を付けての販売になるのではないでしょうか。マーケットプレイスという名前が付いていますので、どんな商品が売り買いしやすいかは皆さんの利用ケースによるかと思います。
それでは販売者として登録します。RIの一覧画面から販売したいインスタンスを選択し、「Sell Reserved Instances」をクリックします。
販売者として登録するか聞いてきますので次に進みます。
販売者としてユニークな名前を設定します。
米国の銀行口座に関する情報を登録します。これで完了です。
RIを販売する
それでは準備が整いましたのでRIを販売してみたいと思います。先ほどと同じようにRIの一覧画面から販売したいインスタンスを選択し、「Sell Reserved Instances」をクリックします。
そして、該当するRIの価格を決めます。
価格を入力後に見積もりが出ます。
これで完了です!
RIの販売価格について
RIを販売する際に自分で価格を設定することができます。この際、オススメの金額が表示されます。これは、通常のAWSが販売する価格に対して、残月数で割った数字が表示されます。例えば、2015年7月の東京リージョンt2.microの1年RI(Partial Upfront)は、85ドルです。85ドルを12か月で割って5か月分を掛けたら、35.42ドルとなります。そこで、オススメ価格が35ドルとなっています。
RIの販売オススメ価格は、残月数が減ることで購入者によるメリットは減りますので、金額も下がっていきます。価格を安く設定すると、早く処分できるでしょう。価格を高く設定すると、短い期間のRIを買いたい人が居れば売れるかもしれません。MMORPG(多人数同時参加型オンラインRPG)みたいですねw
RI販売手続き時のエラー
ちなみに、登録の過程で出たエラーをご紹介したいと思います。
Selle Registration Pending
これは、販売者の手続き中で未だ販売出来ない時のエラーです。
No Capacity Remaining
これは、購入から30日経っていないため販売できないエラーです。
Cannot Sell Reserved Instance
これは、すでに販売を開始してしまったRIをさらに販売しようとした時に出るエラーです。
これは、販売したいリザーブドインスタンスの価格が定価では無い時に出るエラーです。RIを沢山買うと値引きされたりします。
RIを購入する
自身で販売したRIを、他のアカウントから購入してみましょう。先ほど販売した34.99ドルのRIがサードパーティ提供として一覧に表示されていますね。
詳細を確認します。
5か月分のRIを購入することができました!
RIが売れたかどうか確認
出品しているRIが売れたかどうか確認してみましょう。awscliを用います。
$ aws ec2 describe-reserved-instances-listings { "ReservedInstancesListings": [ { "ReservedInstancesId": "ebd8ef0e-721e-4ef6-9811-XXXXXXXXXXXX", "Status": "closed", "Tags": [], "PriceSchedules": [ { "Active": false, "Term": 5, "CurrencyCode": "USD", "Price": 34.99 }, { "Active": false, "Term": 4, "CurrencyCode": "USD", "Price": 27.99 }, { "Active": false, "Term": 3, "CurrencyCode": "USD", "Price": 20.99 }, { "Active": false, "Term": 2, "CurrencyCode": "USD", "Price": 13.99 }, { "Active": false, "Term": 1, "CurrencyCode": "USD", "Price": 6.99 } ], "CreateDate": "2015-07-04T12:57:15.000Z", "ClientToken": "unjfv143601463YYYYY", "ReservedInstancesListingId": "35fc7611-3292-4f31-bccf-XXXXXXXXXXXX", "UpdateDate": "2015-07-04T13:03:25.000Z", "InstanceCounts": [ { "State": "available", "InstanceCount": 0 }, { "State": "sold", "InstanceCount": 1 }, { "State": "cancelled", "InstanceCount": 0 }, { "State": "pending", "InstanceCount": 0 } ], "StatusMessage": "closed" } ] }
販売済み(sold)になっていますね!
一方で購入した人はどうなっているか見てみましょう。こちらもawscliで確認してみます。
$ aws ec2 describe-reserved-instances { "ReservedInstances": [ { "ReservedInstancesId": "93bbbca2-1470-424d-ac87-ZZZZZZZZZZZ", "OfferingType": "Partial Upfront", "AvailabilityZone": "ap-northeast-1c", "End": "2015-12-01T13:00:21.000Z", "ProductDescription": "Linux/UNIX (Amazon VPC)", "UsagePrice": 0.0, "RecurringCharges": [ { "Amount": 0.005, "Frequency": "Hourly" } ], "Start": "2015-07-04T13:00:22.552Z", "State": "active", "FixedPrice": 34.99, "CurrencyCode": "USD", "Duration": 12960000, "InstanceTenancy": "default", "InstanceType": "t2.micro", "InstanceCount": 1 } ] }
確かに、34.99ドルで購入したRIがリストに表示されていましたね。
まとめ
リザーブドインスタンスは、EC2インスタンスを非常に安く利用するために用意された購入オプションです。しかし、一度買ったRIは基本的にキャンセルできません。(※最近、RIの同一タイプをスケールアップ/ダウンできるようになりました)ビジネスの持続性を見越してRIを購入することがほとんどだと思いますが、何が起こるか分かりません。もし、購入したRIが不要になってしまった場合、条件さえ揃えば、マーケットプライスに出品して販売することで、リスクを最小化できるかもしれませんね。それでは、また!
参考資料